#!/usr/bin/python3
# -*- coding:utf-8 -*-
"""
multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象，
下面的例子演示了启动一个子进程并等待其结束
"""
from multiprocessing import Process
import os


def run_pro(name):
    print('Run child process: %s (%s)....' % (name, os.getpid()))


def run_parent_process(name):
    print('Run parent process: %s (%s)....' % (name, os.getpid()))


def main():
    print('Parent process is %s .' % os.getpid())
    # 创建一个子进程 p
    p = Process(target=run_pro, args=('test',), name='子进程1')
    # 启动子进程
    print('Child process will start..', p)
    p.start()
    # join()方法可以等待子进程结束后再继续往下运行，通常用于进程间的同步。
    p.join()
    print('Child process end.', p)
    run_parent_process('parent process')


if __name__ == "__main__":
    main()
